With Supabase's default grants, anyone holding the public anon key (shipped in every page load) can list every order, including customer emails and delivery addresses.
Fix (done):audit/fixes/0002_orders_rls.sql enables RLS; customers read and create only their own orders, new orders must start as pending, admins read all.
CRITICAL · C2
Stripe secret key shipped to the browser
Vite copies every VITE_ variable into the public JavaScript. Anyone can open the site, copy the key, and issue refunds, read customer data or create charges on the Stripe account.
Fix: move Checkout Session creation into an Edge Function that holds the key server-side; rotate the key in Stripe.
HIGH · H1
Payment webhook accepts forged events
The handler never checks the Stripe-Signature header. Anyone who finds the URL can send a fake "checkout completed" event and mark an unpaid order as paid.
Fix: verify the signature with the webhook signing secret (stripe.webhooks.constructEventAsync) before reading the payload; record processed event IDs.
I'm Pelumi, the engineer behind Forthbeam. I build backend, data and AI systems for real business operations, where "mostly works" isn't good enough.
App backends and AI features with role-based access and audit trails
Commerce systems that retry safely and reconcile orders and payments
41-tool AI agent backed by 1,862 passing tests
20+ legacy workflows modernised; ~$14,000 a year saved in infrastructure costs
Why that matters for your app
AI coding tools get an app working fast. Making it safe for real users, data and payments takes engineering judgement. I review every audit myself, explain the risks plainly, and give you a prioritised fix plan.
Read-only access wherever possible. NDA on request.
Your code is never shared, published or reused.
The studio uses AI-assisted review tools with training on your data turned off. I check every finding myself.
Local copies deleted after delivery; you revoke access. Data handling
Not a fit
Apps that store card numbers or medical records, or anyone needing a formal penetration test or compliance certification. No review can promise zero vulnerabilities; the audit finds and ranks the ones that matter most.
Questions
Which stacks do you review?
Apps built with Lovable, Bolt, Cursor, Replit or v0, typically on React or Next.js with Supabase or Firebase, plus Python and Node backends.
What do you need from me?
Read access to the repo, the live URL, and a 5-minute form. Database access only if you choose to grant it.
What if my app is already in good shape?
Then the report says so, with evidence, and you launch with confidence. That is worth knowing too.
What if you miss the 48 hours?
If the report isn't delivered within 48 hours of receiving access, you get a full refund and still keep the report.
Do you fix things, or only report them?
Both. The audit includes one critical fix. The Fix Sprint covers the rest at a fixed price agreed before work starts.
How do I pay?
By card through our checkout. Sprints are 50% upfront and 50% on handover.
Launching soon? Get a second pair of eyes first.
Start with a free 20-minute check, or go straight to the audit.